<?php
// PHP配置文件
// 包含数据库连接配置和通用响应处理函数

// 数据库配置 - 请根据实际环境修改这些值
// 数据库名称: test_wseal_com
// 表: projects - 存储项目信息
// 表: screenshots - 存储项目截图
define('DB_HOST', '服务器地址');
define('DB_PORT', 3306);
define('DB_NAME', '数据库名称');
define('DB_USER', '数据库账号');
define('DB_PASS', '数据库密码');
define('DB_CHARSET', 'utf8mb4');

// 设置响应头为JSON格式
function setJsonHeader() {
    header('Content-Type: application/json; charset=utf-8');
}

// 发送成功响应
function sendSuccessResponse($data = null, $message = '操作成功') {
    $response = [
        'code' => 0,
        'message' => $message,
        'data' => $data
    ];
    echo json_encode($response, JSON_UNESCAPED_UNICODE);
    exit;
}

// 发送错误响应
function sendErrorResponse($message = '操作失败', $code = 1) {
    $response = [
        'code' => $code,
        'message' => $message,
        'data' => null
    ];
    echo json_encode($response, JSON_UNESCAPED_UNICODE);
    exit;
}

// 获取数据库连接
function getDbConnection() {
    static $pdo = null;
    
    if ($pdo === null) {
        $dsn = 'mysql:host=' . DB_HOST . ';port=' . DB_PORT . ';dbname=' . DB_NAME . ';charset=' . DB_CHARSET;
        $options = [
            PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
            PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
            PDO::ATTR_EMULATE_PREPARES => false,
        ];
        
        try {
            $pdo = new PDO($dsn, DB_USER, DB_PASS, $options);
        } catch (PDOException $e) {
            error_log("数据库连接失败: " . $e->getMessage());
            throw new Exception("数据库连接失败");
        }
    }
    
    return $pdo;
}